Method and apparatus for suggesting a message segment for a draft a message based on a contextual characteristic

ABSTRACT

An apparatus may include a messaging module configured to suggest a message segment in order to draft a message. A contextual characteristic determiner may be used to determine contextual characteristics of the apparatus, the recipient of a call, and/or the user of the apparatus and thereby the messaging module may suggest the message segment based on the contextual characteristics. The contextual characteristics may include user emotions, which may be recognized by an emotion recognizer. Message segments may also be based on prior messaging history. Thereby, the apparatus may suggest message segments in order to more easily draft messages when, for example, initiating or responding to attempted voice communications. Further, the apparatus may include a reminder scheduler which is configured to schedule a reminder to respond to an attempted voice communication.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority to U.S.application Ser. No. 12/795,047, filed Jun. 7, 2010, the entire contentsof which are hereby incorporated by reference.

TECHNOLOGICAL FIELD

Embodiments of the present invention relate generally to messagesegments for drafting messages and, more particularly, relate to anapparatus, method and a computer program product configured to suggest amessage segment based on a contextual characteristic in order to draft amessage.

BACKGROUND

In order to provide easier or faster information transfer andconvenience, telecommunication industry service providers arecontinually developing improvements to existing communication networks.As a result, wireless communication has become increasingly morereliable in recent years. Along with the expansion and improvement ofwireless communication networks, mobile terminals used for wirelesscommunication have also been continually improving. In this regard, dueat least in part to reductions in size and cost, along with improvementsin battery life and computing capacity, mobile terminals have becomemore capable, easier to use, and cheaper to obtain. Due to the nowubiquitous nature of mobile terminals, people of all ages and educationlevels are utilizing mobile terminals to communicate with otherindividuals or contacts, receive services and/or share information,media and other content.

One of the technologies enabled by mobile terminals which has becomemore popular is that of text messaging. Text messaging allows users toquickly send short messages between mobile terminals. While thistechnology may provide a convenient way to convey information, furtheruses of this technology may be possible. For example, the interaction oftext messaging with other user terminal functionality may not yet befully developed.

BRIEF SUMMARY

A method, apparatus and computer program product are therefore providedthat may suggest a message segment based on a contextual characteristicin order to draft a message.

In an example embodiment, an improved apparatus comprises at least oneprocessor and at least one memory including computer program code, theat least one memory and the computer program code configured to, withthe processor, cause the apparatus to determine a contextualcharacteristic, suggest a message segment based on the contextualcharacteristic in order to draft a message, and cause transmission ofthe message.

In an additional example embodiment a method comprises determining acontextual characteristic, suggesting a message segment based on thecontextual characteristic in order to draft a message via a processor,and causing transmission of the message.

In a further example embodiment a computer program product comprises atleast one computer-readable storage medium having computer-executableprogram code portions stored therein, the computer-executable programcode portions comprising program code instructions for determining acontextual characteristic, program code instructions for suggesting amessage segment based on the contextual characteristic in order to drafta message, and program code instructions for causing transmission of themessage.

Accordingly, embodiments of the present invention may suggest a messagesegment based on a contextual characteristic in order to draft amessage, thereby facilitating communication between users either inaddition to or instead of voice communications.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Having thus described embodiments of the present disclosure in generalterms, reference will now be made to the accompanying drawings, whichare not necessarily drawn to scale, and wherein:

FIG. 1 illustrates a schematic block diagram of a system according to anexample embodiment of the present invention;

FIG. 2 illustrates a schematic block diagram of an apparatus configuredto suggest a message segment based on a contextual characteristic inorder to draft a message according to an example embodiment of thepresent invention;

FIG. 3 illustrates the user terminal of FIG. 1 when the user terminal isreceiving an attempted voice communication according to an exampleembodiment of the present invention;

FIG. 4 illustrates the user terminal of FIG. 1 when the user terminal issuggesting message segments in order to draft a message corresponding tothe attempted voice communication; and

FIG. 5 illustrates a flowchart according to an example method forsuggesting a message segment based on a contextual characteristic inorder to draft a message in accordance with an example embodiment of thepresent invention.

DETAILED DESCRIPTION

Some embodiments of the present invention will now be described morefully hereinafter with reference to the accompanying drawings, in whichsome, but not all embodiments of the invention are shown. Indeed,various embodiments of the invention may be embodied in many differentforms and should not be construed as limited to the embodiments setforth herein. Like reference numerals refer to like elements throughout.As used herein, the terms “data,” “content,” “information” and similarterms may be used interchangeably to refer to data capable of beingtransmitted, received and/or stored in accordance with embodiments ofthe present invention. Moreover, the term “exemplary”, as used herein,is not provided to convey any qualitative assessment, but instead merelyto convey an illustration of an example. Thus, use of any such termsshould not be taken to limit the spirit and scope of embodiments of thepresent invention.

As used herein, the term ‘circuitry’ refers to (a) hardware-only circuitimplementations (for example, implementations in analog circuitry and/ordigital circuitry); (b) combinations of circuits and computer programproduct(s) comprising software and/or firmware instructions stored onone or more computer readable memories that work together to cause anapparatus to perform one or more functions described herein; and (c)circuits, such as, for example, a microprocessor(s) or a portion of amicroprocessor(s), that require software or firmware for operation evenif the software or firmware is not physically present. This definitionof ‘circuitry’ applies to all uses of this term herein, including in anyclaims. As a further example, as used herein, the term ‘circuitry’ alsoincludes an implementation comprising one or more processors and/orportion(s) thereof and accompanying software and/or firmware. As anotherexample, the term ‘circuitry’ as used herein also includes, for example,a baseband integrated circuit or applications processor integratedcircuit for a mobile phone or a similar integrated circuit in a server,a cellular network device, other network device, and/or other computingdevice.

As indicated above, embodiments of the present invention may be employedin methods, apparatuses and computer program products configured tosuggest a message segment based on a contextual characteristic in orderto draft a message. A message segment, as used herein, refers to one ormore words, symbols, emoticons, acronyms, or other combination ofcharacters, symbols or graphical equivalents thereof. Messages may insome embodiments comprise text messages or emails. Further, an attemptedvoice communication, as used herein as will be described below, refersto phone calls, Voice over Internet Protocol (VoIP) communications,video conferencing, and other forms of communication which involve thetransmission of audio, regardless of whether the communication isaccepted or rejected by the user and thereby regardless of whether voicecommunication actually occurs.

In this regard, for example, FIG. 1 illustrates a block diagram of asystem that may benefit from embodiments of the present invention. Itshould be understood, however, that the system as illustrated andhereinafter described is merely illustrative of one system that maybenefit from embodiments of the present invention and, therefore, shouldnot be taken to limit the scope of embodiments of the present invention.

As shown in FIG. 1, an embodiment of a system in accordance with anexample embodiment of the present invention may include a user terminal10. The user terminal 10 may be any of multiple types of fixed or mobilecommunication and/or computing devices such as, for example, portabledigital assistants (PDAs), pagers, mobile televisions, mobiletelephones, gaming devices, laptop computers, personal computers (PCs),cameras, camera phones, video recorders, audio/video players, radios,global positioning system (GPS) devices, or any combination of theaforementioned, and other types of voice and text communicationssystems, which employ embodiments of the present invention.

In some embodiments the user terminal 10 may be capable of communicatingwith other devices, either directly, or via a network 30. The network 30may include a collection of various different nodes, devices orfunctions that may be in communication with each other via correspondingwired and/or wireless interfaces. As such, the illustration of FIG. 1should be understood to be an example of a broad view of certainelements of the system and not an all inclusive or detailed view of thesystem or the network 30. Although not necessary, in some embodiments,the network 30 may be capable of supporting communication in accordancewith any one or more of a number of first-generation (1G),second-generation (2G), 2.50, third-generation (3G), 3.5G, 3.9G,fourth-generation (4G) mobile communication protocols, Long TermEvolution (LTE), and/or the like. Thus, the network 30 may be a cellularnetwork, a mobile network and/or a data network, such as a local areanetwork (LAN), a metropolitan area network (MAN), and/or a wide areanetwork (WAN), for example, the Internet. In turn, other devices such asprocessing elements (for example, personal computers, server computersor the like) may be included in or coupled to the network 30. Bydirectly or indirectly connecting the user terminal 10 and the otherdevices to the network 30, the user terminal and/or the other devicesmay be enabled to communicate with each other, for example, according tonumerous communication protocols including Hypertext Transfer Protocol(HTTP) and/or the like, to thereby carry out various communication orother functions of the mobile terminal and the other devices,respectively. As such, the user terminal 10 and the other devices may beenabled to communicate with the network 30 and/or each other by any ofnumerous different access mechanisms. For example, mobile accessmechanisms such as wideband code division multiple access (W-CDMA),CDMA2000, global system for mobile communications (GSM), general packetradio service (GPRS) and/or the like may be supported as well aswireless access mechanisms such as wireless LAN (WLAN), WorldwideInteroperability for Microwave Access (WiMAX), WiFi, ultra-wide band(UWB), Wibree techniques and/or the like and fixed access mechanismssuch as digital subscriber line (DSL), cable modems, Ethernet and/or thelike. Thus, for example, the network 30 may be a home network or othernetwork providing local connectivity.

The system may further comprise a second user terminal 40. The seconduser terminal 40 may be any of multiple types of fixed or mobilecommunication and/or computing devices such as, for example, portabledigital assistants (PDAs), pagers, mobile televisions, mobiletelephones, gaming devices, laptop computers, personal computers (PCs),cameras, camera phones, video recorders, audio/video players, radios,global positioning system (GPS) devices, or any combination of theaforementioned, and other types of voice and text communicationssystems, which employ embodiments of the present invention. The seconduser terminal 40 may be capable of communicating with the user terminal10 either directly, or through the network 30. Thereby, for example, theuser terminal 10 may communicate with the second user terminal 40through sending and/or receiving electronic communications includingtext messages and emails and voice communications including phone calls,VoIP calls, video conference calls, etcetera. Text messages may be sentvia Short Message Service (SMS) and/or Instant Messaging (IM) in someembodiments. Accordingly, the user terminal 10 and the second userterminal 40 may communicate with one another via a variety of methodsand technologies in various embodiments.

In an example embodiment, an apparatus 50 is provided that may beemployed by devices performing example embodiments of the presentinvention. The apparatus 50 may be embodied, for example, as any devicehosting, including, controlling or otherwise comprising the userterminal 10 and/or the second user terminal 40. However, embodiments mayalso be embodied on a plurality of other devices such as for examplewhere instances of the apparatus 50 may be embodied on the network 30.As such, the apparatus 50 of FIG. 2 is merely an example and may includemore, or in some cases less, than the components shown in FIG. 2.

With further regard to FIG. 2, the apparatus 50 is configured to suggesta message segment based on a contextual characteristic in order to drafta message. The apparatus 50 may include or otherwise be in communicationwith a processor 70, a user interface 72, a communication interface 74and a memory device 76. The memory device 76 may include, for example,volatile and/or non-volatile memory. The memory device 76 may beconfigured to store information, data, files, applications, instructionsor the like. For example, the memory device 76 could be configured tobuffer input data for processing by the processor 70. Additionally oralternatively, the memory device 76 could be configured to storeinstructions for execution by the processor 70.

The processor 70 may be embodied in a number of different ways. Forexample, the processor 70 may be embodied as one or more of variousprocessing means such as a coprocessor, a microprocessor, a controller,a digital signal processor (DSP), processing circuitry with or withoutan accompanying DSP, or various other processing devices includingintegrated circuits such as, for example, an ASIC (application specificintegrated circuit), an FPGA (field programmable gate array), a hardwareaccelerator, a special-purpose computer chip, or the like. In an exampleembodiment, the processor 70 may be configured to execute instructionsstored in the memory device 76 or otherwise accessible to the processor.Alternatively or additionally, the processor 70 may be configured toexecute hard coded functionality. As such, whether configured byhardware or software methods, or by a combination thereof, the processor70 may represent an entity (for example, physically embodied incircuitry) capable of performing operations according to embodiments ofthe present invention while configured accordingly. Thus, for example,when the processor 70 is embodied as an ASIC, FPGA or the like, theprocessor 70 may be specifically configured hardware for conducting theoperations described herein. Alternatively, as another example, when theprocessor 70 is embodied as an executor of software instructions, theinstructions may specifically configure the processor to perform thealgorithms and/or operations described herein when the instructions areexecuted. However, in some cases, the processor 70 may be a processor ofa specific device (for example, a mobile terminal or network device suchas a server) adapted for employing embodiments of the present inventionby further configuration of the processor by instructions for performingthe algorithms and/or operations described herein. The processor 70 mayinclude, among other things, a clock, an arithmetic logic unit (ALU) andlogic gates configured to support operation of the processor.

Meanwhile, the communication interface 74 may be any means such as adevice or circuitry embodied in either hardware, software, or acombination of hardware and software that is configured to receiveand/or transmit data from/to a network and/or any other device or modulein communication with the apparatus 50. In this regard, thecommunication interface 74 may include, for example, an antenna (ormultiple antennas) and supporting hardware and/or software for enablingcommunications with a wireless communication network (for example,network 30). In fixed environments, the communication interface 74 mayalternatively or also support wired communication. As such, thecommunication interface 74 may include a communication modem and/orother hardware/software for supporting communication via cable, digitalsubscriber line (DSL), universal serial bus (USB), Ethernet,High-Definition Multimedia Interface (HDMI) or other mechanisms.Furthermore, the communication interface 74 may include hardware and/orsoftware for supporting communication mechanisms such as BLUETOOTH®,Infrared, UWB, WiFi, and/or the like, which are being increasinglyemployed in connection with providing home connectivity solutions.Accordingly, the communication interface 74 may enable the apparatus 50to send and/or receive messages including text messages and emails andvoice communications including phone calls, VoIP calls, videoconferences, etcetera.

The user interface 72 may be in communication with the processor 70 toreceive an indication of a user input at the user interface and/or toprovide an audible, visual, mechanical or other output to the user. Assuch, the user interface 72 may include, for example, a keyboard, amouse, a joystick, a display, a touch screen, a microphone, a speaker,or other input/output mechanisms.

The processor 70 may comprise user interface circuitry configured tocontrol at least some functions of one or more elements of the userinterface 72, such as, for example, the speaker, the ringer, themicrophone, the display, and/or the like. The processor 70 and/or userinterface circuitry comprising the processor 70 may be configured tocontrol one or more functions of one or more elements of the userinterface 72 through computer program instructions (for example,software and/or firmware) stored on a memory accessible to the processor70 (for example, memory device 76, and/or the like).

The apparatus 50 may further comprise a messaging module 78 which isconfigured to suggest a message segment in order to draft a message. Theprocessor 70 may be embodied as, include or otherwise control themessaging module 78. In some embodiments the messaging module 78 maysuggest a message segment for a message which is in response to anattempted voice communication which the apparatus 50 receives.Accordingly, the message may respond to the attempted voicecommunication.

For example, FIG. 3 illustrates the user terminal 10 when it embodiesthe apparatus 50 and the user terminal is receiving an attempted voicecommunication. As illustrated, the attempted voice communication isoriginating from a caller 102 having the name “Andy.” For example, thecall may be originating from the second user terminal 40. Accordingly,the apparatus 50 may provide the user with a variety of options whichmay be selected using the user interface 72. The user interface 72 may,for example, comprise physical buttons and or virtual buttons which aredisplayed on a touch screen. For example, the user interface 72 mayallow the user to mute the ringing using a mute button 104, answer thecall with an answer button 106, or reject the call using a reject button108.

The apparatus 50 may further provide the user with an option to send amessage to the caller which is trying to reach the user, and thereby theuser interface 72 may include a message button 110. When the userpresses the message button 110, the user interface 72 may then promptthe user to draft a message to send to the caller, as illustrated inFIG. 4. The messaging module 78 may thereby suggest one or more messagesegments 112 in order to draft a message corresponding to the attemptedvoice communication. For example, in the illustrated embodiment the useris provided with message segments 112 in the form of introductoryphrases 112 a, first middle phrases 112 b, second middle phrases 112 c,and ending phrases 112 d. As indicated by the user instructions 114, theuser may either use the message segments 112 to draft a message, or theuser may manually enter a message in the text box 116, or a combinationof both. Thereby, the user may draft a message.

The message segments 112 may be configured to be selected to form acomplete message. In this regard, the introductory phrases 112 a mayinclude an introduction, the first 112 b and second 112 c middle phrasesmay include substantive information, and the ending phrases 112 d mayinclude a salutation. In some embodiments the user may be able to selectone of the introductory phrases 112 a, for example “Howdy,” and combinethis message segment 112 with an additional message segment suggested bythe messaging module 78. For example, the user may draft a message usingthe message segments 112 which reads, “Howdy, call you in an hour.Hugs!” The user may be allowed to combine as many of the messagesegments 112 as desired in some embodiments. For example, the user mayselect both the “Howdy,” and the “Andy,” introductory phrases 112 a whendrafting a message. In some embodiments the messaging module 78 mayinclude grammatical logic configured to adjust the punctuation toconform to proper sentence structures. Thus, for example, rather thandrafting a message which begins with “Howdy, Andy,”, the messagingmodule 78 may instead draft a message which begins with “Howdy Andy,”and is thus more grammatically correct.

The message segment candidates that are displayed to a user forselection may be predefined in one embodiment. However, in otherembodiments, the messaging module 78 may tailor the message segmentcandidates and therefore vary the message segment candidates based uponvarious factors. For example, the messaging module 78 of one embodimentmay suggest the message segment based on a contextual characteristic.Thus, the apparatus 50 may further include a contextual characteristicdeterminer 80, as illustrated in FIG. 2, which is configured todetermine a contextual characteristic. The processor 70 may be embodiedas, include or otherwise control the contextual characteristicdeterminer 80.

Contextual characteristics may include the present time, location,activity, etcetera of the user and/or the apparatus 50. Further,contextual characteristics may relate to the caller 102, e.g., Andy,from which the attempted voice communication originates. For example,one of the introductory phrases 112 a illustrated in FIG. 4 reads“Andy,”. Accordingly, the user may be able to select a message segment112 for drafting a message which is tailored to specifically relate tothe caller 102. The contextual characteristic determiner 80 maydetermine that Andy is the name of the caller 102 through contactinformation stored in the apparatus 50, for example in the memory 76.Additional contextual characteristics may relate to the user, and inparticular the user's schedule. For example, if the attempted voicecommunication is received during an activity which is entered into auser calendar which is stored in the apparatus 50 or otherwiseaccessible by the apparatus, the contextual characteristic determiner 80may suggest message segments 112 which relate to calling the caller 102back after the end of the scheduled activity and during a free period inthe user's schedule. For example, the second middle phrases 112 cinclude a message segment 112 which states “in an hour”. This messagesegment 112 may, for example, be displayed if the user is currentlyinvolved in an activity which is scheduled to end in an hour. Thereby,the user may use the first 112 b and second 112 c middle phrases to forma message which states that the user will call the caller 102 in anhour.

Further, the apparatus 50 may provide features intended to account forsituations in which the user terminal 10 receives multiple attemptedvoice communications from different callers during the scheduledactivity or during an ongoing voice communication. In such instances,the messaging module 78 may suggest one or more message segments 112which take into account the fact that the user may not want or be ableto contact all of the callers at the same time. For example, if thescheduled activity ends in an hour, the user may only be able to contactone of the callers immediately after the end of the hour. Thus, theapparatus 50 may build a queue of callers which the user needs tocontact which may be based on the order in which the attempted voicecommunications occur. For example, the message segments 112 for thefirst caller may suggest that the user will call the first caller in anhour. However, the messaging module 78 may then suggest message segments112 for calling any additional callers back which take into account thatthe user may not call back the additional callers immediately after theend of the scheduled activity. Thereby, in some embodiments theapparatus 50 may calculate an expected call duration for the firstcaller and then suggest the time for calling back the second callerbased on this. For example, if the scheduled activity ends in an hour,and voice communications with the first caller usually last fiveminutes, the messaging module 78 may suggest message segments indicatingthat the user will call the second caller in an hour and five minutes.In alternate embodiments, or in situations in which the apparatus 50 isunable to associate a call history with the caller, the apparatus mayassume that voice communications with callers all last for approximatelythe same duration. Thereby, an expected call duration may be based on anaverage of all previous calls, may be user settable, or may be based ona default time period, for example 10 minutes. Similar calculations andsuggestions for message segments 112 may occur for additional callerswhich thereafter enter the queue of missed calls during a scheduledactivity or during an ongoing voice communication.

Further, in some embodiments the contextual characteristic determiner 80may take into account the time of day. For example, if an activity endsat or after a predefined time, such as 10 PM, the contextualcharacteristic determiner may determine that it would be better to callback the person in the morning rather than late at night. Thereby, themessaging module 78 may suggest a message segment 112 which suggestscalling the user back “in the morning,” rather than when the activityends.

Whether or not the user is engaged in a scheduled activity may in someembodiments be determined by analyzing various contextualcharacteristics which may be detected. For example, the apparatus 50 mayuse a microphone to detect whether the user is listening to a speaker ata meeting. Further, an accelerometer may be able to determine whetherthe user is stationary, which may be indicative that the user is seatedat the meeting. Further, the apparatus may include a GPS module 82 orother module configured to determine the location of the apparatus 50.The processor 70 may be embodied as, include or otherwise control theGPS module 82. Using the information provided by the GPS module 82, thecontextual characteristic determiner 80 may be able to determine if theuser is presently located at the location where a scheduled event wassupposed to occur. Thereby, if the contextual characteristic determiner80 determines that the apparatus 50 is located at the location of apresently scheduled event, this provides additional informationindicative that the user is indeed attending the scheduled event.Accordingly, this information may be used by the messaging module 78when suggesting message segments 112 as described above. For example,the messaging module 78 may suggest a message segment candidate whichstates that the user will call the caller 102 at the end of thescheduled event.

In some embodiments the messaging module 78 may additionally oralternatively suggest message segments 112 based on social networking.In this regard, the contextual characteristic determiner 80 maydetermine the relationship of the user of the apparatus 50 to the caller102. For example, the contextual characteristic determiner 80 maydetermine whether the user and the caller 102 are connected through asocial networking service so as to therefore be considered friends.Thus, if the user and the caller 102 are personal friends, for example,the contextual characteristic determiner 80 may provide this informationto the messaging module 78. The messaging module 78 may thereby suggestmessage segments 112 which are less formal. The contextualcharacteristic determiner 80 may also make a determination as to therelationship of the user and the caller 102 through other methods, forexample, by reviewing stored contact information relating to the caller.Thus, the messaging module 78 may be provided with information from thecontextual characteristic determiner 80 which allows the apparatus 50 tosuggest message segments 112 which are tailored to the relationship ofthe user and the caller 102. Thereby, for example, message segments 112which are more formal may be suggested when the user is responding tothe user's boss as compared to when the user is responding to a personalfriend. Further, in some embodiments the messaging module 78 may suggestmessage segments 112 based on content appearing on social networkingservices. For example, the messaging module 78 may suggest messagesegments 112 which include content posted by one or both of the user andthe caller 102.

The apparatus 50 may further comprise an emotion recognizer 84 in someembodiments. The processor 70 may be embodied as, include or otherwisecontrol the emotion recognizer 84. The emotion recognizer 84 maycomprise a portion of the contextual characteristic determiner 80 insome embodiments, or the emotion recognizer may comprise a separatemodule, as illustrated in FIG. 2. The emotion recognizer 84 may beconfigured to recognize emotions as expressed by the user of theapparatus 50. For example, if the user speaks into the user terminal 10in a calm manner, or drafts messages which say that he or she is havinga good day, the emotion detector 84 may recognize that the user ishappy. Alternatively, if the user yells during a voice communication, ordrafts messages indicating that he or she is having a bad day, theemotion detector 84 may determine that the user is unhappy or angry.Other emotions may be recognized by the emotion detector 84 in a similarmanner. Accordingly, the messaging module 78 may use the emotionrecognized by the emotion recognizer 84 to suggest message segments 112.For example, FIG. 4 includes an ending phrase 112 d which is a smileyface. The smiley face may be suggested due to the emotion recognizer 84recognizing that the user is happy. In this manner, some embodiments ofthe apparatus 50 may suggest and/or allow manual entry ofemotion-indicating icons, which may be referred to emoticons, only whenthe emotion recognizer 84 has recognized that the user is currentlyexperiencing that emotion. Thereby, in some embodiments of theinvention, the user may be able to draft a message with emoticons whichhave been certified by the emotion recognizer 84, which could thereby beused to confirm to the caller 102 receiving the message that the emotionconveyed in the message is actually the emotion being experienced by theuser of the mobile terminal 10.

The message segments 112 suggested by the messaging module 78 may alsobe suggested based on various other contextual characteristics. Forexample, the messaging module 78 may review prior messages from the usersent to the caller 102, and suggest common phrases appearing in theprevious messages. For example, if the user frequently includes thephrase “Love you!” in messages sent to the caller, one of the messagesegments 112, for example one of the ending phrases 112 d, may includethis language. Further, the messaging module 78 may take into accountother contextual information provided by the contextual characteristicdeterminer 80 such as related actions by the user. For example, if theuser previously rejected a call from the caller 102, the messagingmodule 78 may suggest message segments 112 which indicate that the useris “still busy”. Accordingly, by suggesting message segments 112, theapparatus 50 provides the user with a relatively simple and quick way todraft messages which correspond to attempted voice communications.Thereby, communication between the caller 102 and the user of theapparatus 50 may be simplified and enhanced.

After a message is drafted, the user may cause transmission of themessage by pressing a send button 118. However, the user mayalternatively cancel the message and schedule a reminder in someembodiments using a cancel button 120. In this regard, embodiments ofthe apparatus 50 may also include a reminder scheduler 86, asillustrated in FIG. 2. The processor 70 may be embodied as, include orotherwise control the reminder scheduler 86. In some embodiments thereminder scheduler 86 may display a graphical timeline 122, asillustrated in FIG. 3, which the user may use to schedule a reminder byselecting a specific time at which the apparatus 50 will remind theuser. In some embodiments the graphical timeline 122 may display whichperiods of time already have scheduled activities and which do not inorder to help the user determine what would be a good time for areminder. In other embodiments the reminder scheduler 86 may allow theuser to select a duration of time from the present time at which theapparatus may remind the user. For example, the duration of time may bein increments of fifteen minutes, half hours, or hours in someembodiments. Accordingly, the user may be reminded about the attemptedvoice communication, and return the call if the user so desires.

Although embodiments of the apparatus 50 have generally been describedin terms of receiving attempted voice communications, embodiments of theapparatus may additionally or alternatively be configured to causetransmission of the attempted voice communication. In other words, theapparatus 50 may initiate the attempted voice communication. In theseembodiments, the message may accompany the voice communication, forexample when the voice communication and the message are transmittedsubstantially simultaneously. However, in other embodiments theapparatus 50 may wait and transmit a message if and when the attemptedvoice communication is not answered by the recipient, or otherwisefollowing termination of the attempted voice communication.

Sending a message when also causing transmission of a voicecommunication may be beneficial to provide the recipient of the call andmessage with an indication of what the call concerns. For example, if achild is calling a parent, the child may want to indicate that thepurpose of the call is not urgent if that is the case. Thus, if theparent receives a message asking whether he can have candy, the parentmay be inclined to ignore the call for the time being if the parent isbusy doing something else. Otherwise, without the message, the parentmay be inclined to always answer the call from the child because of fearthan an emergency has occurred, which may be very disruptive to theparent. However, various other uses for the messages may be possible.

In this regard, the messaging module 78, contextual characteristicdeterminer 80, GPS module 82, emotion recognizer 84, and reminderscheduler 86 may operate in a substantially similar manner as describedabove with respect to when the apparatus 50 is configured to receive theattempted voice communication. For example, the GPS module 82 maycalculate the location of the user, and then the contextualcharacteristic determiner 80 may determine that this location is theaddress of the user's friend, Conor. Thereby, the messaging module 78may suggest message segments 112 which include “at Conor's house”.Thereby, for example, the user could quickly and easily draft a messageusing the message segment 112 to send a message stating “At Conor'shouse. Ok if I stay?” that may be transmitted concurrent with theattempted voice communication. Accordingly, the recipient of theattempted voice communication may know the topic for conversation.

Further, the contextual characteristic determiner 80 may determine therelationship of the user to the recipient of the attempted voicecommunication. For example, as described above, the contextualcharacteristic determiner 80 may review the contact information for therecipient of the attempted voice communication and/or determine whetherthe user and the caller 102 are connected through a social networkingservice. Thus, if the user and the caller 102 are personal friends, forexample, the contextual characteristic determiner 80 may provide thisinformation to the messaging module 78. The messaging module 78 maythereby suggest message segments 112 which are less formal. As describedabove, the messaging module 78 may also make suggestions based onprevious messages which the user has sent to the recipient of theattempted voice communication in the past. Accordingly, the apparatus 50may suggest message segments 112 which accompany attempted voicecommunications, and thereby provide the user with a quick and easy wayto draft messages when, for example, initiating a phone call or tofollow up an attempted voice communication that went unanswered.Additionally, the reminder scheduler 86 may automatically prompt theuser to schedule a reminder to try again later when the attempted voicecommunication is not answered.

Further, the reminder scheduler 86 may in some embodiments take intoaccount the relationship of the user to the caller or the relationshipof the user to the recipient of an attempted voice communication. Forexample, the reminder scheduler 86 may suggest calling back familymembers or unidentified callers first when the user misses more than onecall. Also, the priority which the reminder scheduler 86 uses in settingreminders for calling back callers may be based on the subject matter ofthe call in instances in which the caller sends a message indicating thesubject matter of the call. For example, the reminder scheduler 86 maylook for key words indicating urgency, for example, “help,” “emergency,”etcetera. Additionally, in some embodiments the reminder scheduler 86may prioritize the reminders based on the frequency of the attemptedvoice communications. For example, if a caller attempts to call the userseveral times during a short time period, the reminder scheduler 86 maydetermine that the caller urgently needs to contact the user.Accordingly, in various embodiments the reminder scheduler 86 mayprioritize reminders for calling other persons based on determinedurgency of the communications, relationship between the user and thecaller, and various other factors.

Note that while the apparatus 50 is generally described above withrespect to embodiments in which the apparatus is configured to providefor a voice communication, in other embodiments this is not necessarilythe case. For example, the apparatus 50 may be configured to determine acontextual characteristic using the contextual characteristic determiner80 and suggest a message segment based on the contextual characteristicusing the messaging module 78 without providing for an attempted voicecommunication. This may be applied, for example, in the context ofsending text messaging, posting status updates on a Social NetworkingService (SNS), or posting messages on a web forum. The contextualcharacteristics in such instances may relate, for example, to priormessages created by the user of the apparatus 50. In the case ofmessages target for a particular recipient, for example text messages,the contextual characteristics may further relate to the recipient ofthe message. Thereby, the messages may be tailored to the recipient ofthe message in some instances. Accordingly, embodiments of the apparatus50 may suggest messages based on contextual characteristics regardlessof whether the apparatus provides for voice communications in someembodiments.

In terms of methods associated with embodiments of the presentinvention, the above-described apparatus 50 or other embodiments ofapparatuses may be employed. In this regard, FIG. 5 is a flowchart of asystem, method and program product according to example embodiments ofthe invention. It will be understood that each block of the flowchart,and combinations of blocks in the flowchart, may be implemented byvarious means, such as hardware, firmware, processor, circuitry and/orother device associated with execution of software including one or morecomputer program instructions. For example, one or more of theprocedures described above may be embodied by a computer program productincluding computer program instructions. In this regard, the computerprogram instructions which embody the procedures described above may bestored by a memory device and executed by a processor of an apparatus.As will be appreciated, any such computer program instructions may beloaded onto a computer or other programmable apparatus (for example,hardware) to produce a machine, such that the resulting computer orother programmable apparatus embody means for implementing the functionsspecified in the flowchart block(s). These computer program instructionsmay also be stored in a computer-readable memory that may direct acomputer or other programmable apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture the execution of whichimplements the function specified in the flowchart block(s). Thecomputer program instructions may also be loaded onto a computer orother programmable apparatus to cause a series of operations to beperformed on the computer or other programmable apparatus to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus implement the functionsspecified in the flowchart block(s).

Accordingly, blocks of the flowchart support combinations of means forperforming the specified functions. It will also be understood that oneor more blocks of the flowchart, and combinations of blocks in theflowcharts, can be implemented by special purpose hardware-basedcomputer systems which perform the specified functions, or combinationsof special purpose hardware and computer instructions.

In this regard, one embodiment of a method comprises determining acontextual characteristic at operation 200. Further, the method mayinclude suggesting a message segment based on the contextualcharacteristic in order to draft a message at operation 202.Additionally, the method may include causing transmission of the messageat operation 204.

In some embodiments, certain ones of the above-described operations (asillustrated in solid lines in FIG. 5) may be modified or furtheramplified. In some embodiments additional operations may also beincluded (some examples of which are shown in dashed lines in FIG. 5).It should be appreciated that each of the modifications, optionaladditions or amplifications may be included with the above-describedoperations (200-204) either alone or in combination with any othersamong the features described herein. As such, each of the otheroperations as will be described herein may be combinable with theabove-described operations (200-204) either alone or with one, more thanone, or all of the additional operations in any combination.

For example, the method may further comprise recognizing a user emotionat operation 206, wherein the contextual characteristic comprises theuser emotion. Further, the method may comprise providing for anattempted voice communication at operation 208. As described above,providing for an attempted voice communication includes, in oneembodiment, providing for transmission of an attempted voicecommunication, such as by placing a voice call, and, in anotherembodiment, providing for reception of an attempted voice communication,such as by receiving a voice call and providing appropriate alerting,e.g., ringing, vibration, etc.

Therefore, the method may further comprise receiving the attempted voicecommunication at operation 210, wherein the message responds to theattempted voice communication. Accordingly, the method may furthercomprise scheduling a reminder to respond to the attempted voicecommunication at operation 212. Thus, in some embodiments of the method,the attempted voice communication is received. However, as illustratedat operation 214, in other embodiments the method may comprise causingtransmission of the attempted voice communication, wherein the messageaccompanies the attempted voice communication. Accordingly, someembodiments of the method may involve placing a phone call or otherwiseinitiating an attempted voice communication. Further, the method mayinclude suggesting an additional message segment at operation 216 andcombining the additional message segment with the message segment toform the message at operation 218.

In an example embodiment, an apparatus for performing the method of FIG.5 and other methods described above may comprise a processor (forexample, the processor 70) configured to perform some or each of theoperations (200-218) described above. The processor may, for example, beconfigured to perform the operations (200-218) by performing hardwareimplemented logical functions, executing stored instructions, orexecuting algorithms for performing each of the operations.Alternatively, the apparatus may comprise means for performing each ofthe operations described above. In this regard, according to an exampleembodiment, examples of means for performing operations 200-218 maycomprise, for example, the processor 70, the user interface 72, thecommunication interface 74, the messaging module 78, the contextualcharacteristic determiner 80, the emotion recognizer 84, and thereminder scheduler 86, and/or an algorithm executed by the processor forprocessing information as described above. However, the above-describedportions of the apparatus 50 as they relate to the operations of themethod illustrated in FIG. 5 are merely examples, and it should beunderstood that various other embodiments may be possible.

In some embodiments the operation 200 of determining a contextualcharacteristic may be conducted by means, such as the contextualcharacteristic determiner 80, the GPS module 82, and/or the processor70. Further, the operation 202 of suggesting a message segment based onthe contextual characteristic in order to draft a message may beconducted by means, such as the messaging module 78, the contextualcharacteristic determiner 80, and/or the processor 70. Additionally, theoperation 204 of causing transmission of the message may be conducted bymeans, such as the communication interface 74, and/or the processor 70.

Further, the operation 206 of recognizing a user emotion may beconducted by means, such as the emotion recognizer 84, and/or theprocessor 70. Also, operation 208 of providing for an attempted voicecommunication may be conducted by means, such as user interface 72, thecommunication interface 74, and/or the processor 70. Further, theoperation 210 of receiving the attempted voice communication and theoperation 214 of causing transmission of the attempted voicecommunication may be conducted by means, such as the communicationinterface 74, and/or the processor 70. Also, the operation 212 ofscheduling a reminder to respond to the attempted voice communicationmay be conducted by means, such as the reminder scheduler 86, and/or theprocessor 70. Additionally, the operation 216 of suggesting anadditional message segment and the operation 218 of combining theadditional message segment with the message segment to form the messagemay be conducted by means, such as the messaging module 78, and/or theprocessor 70.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Moreover, although the foregoing descriptions and the associateddrawings describe example embodiments in the context of certain examplecombinations of elements and/or functions, it should be appreciated thatdifferent combinations of elements and/or functions may be provided byalternative embodiments without departing from the scope of the appendedclaims. In this regard, for example, different combinations of elementsand/or functions than those explicitly described above are alsocontemplated as may be set forth in some of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

That which is claimed:
 1. An apparatus comprising at least one processorand at least one memory including computer program code, the at leastone memory and the computer program code configured to, with theprocessor, cause the apparatus to: determine a contextualcharacteristic; generate a message based on the contextualcharacteristic, the message comprising a plurality of generated messagesegments and at least one message portion to be completed by the user;receive the at least one message portion; incorporate the at least onemessage portion into the message; and cause transmission of the message.2. The apparatus of claim 1, wherein the message is generated inresponse to an incoming communication, and the contextual characteristicis identified based on at least a sender of the incoming communication.3. The apparatus of claim 1, wherein the contextual characteristic isbased on at least a calendar.
 4. The apparatus of claim 1, wherein thecontextual characteristic is based on at least one of a current day ortime.
 5. The apparatus of claim 1, wherein the contextual characteristicis based on at least a current location.
 6. The apparatus of claim 1,wherein the contextual characteristic is based on at least a user. 7.The apparatus of claim 1, wherein the contextual characteristic is basedon at least a prior communication.
 8. A computer program productcomprising at least one non-transitory computer-readable storage mediumhaving computer-executable program code instructions stored therein, thecomputer-executable program code instructions comprising program codeinstructions to: determine a contextual characteristic; generate amessage based on the contextual characteristic, the message comprising aplurality of generated message segments and at least one message portionto be completed by the user; receive the at least one message portion;incorporate the at least one message portion into the message; and causetransmission of the message.
 9. The computer program product of claim 8,wherein the message is generated in response to an incomingcommunication, and the contextual characteristic is identified based onat least a sender of the incoming communication.
 10. The computerprogram product of claim 8, wherein the contextual characteristic isbased on at least a calendar.
 11. The computer program product of claim8, wherein the contextual characteristic is based on at least one of acurrent day or time.
 12. The computer program product of claim 8,wherein the contextual characteristic is based on at least a currentlocation.
 13. The computer program product of claim 8, wherein thecontextual characteristic is based on at least a user.
 14. The computerprogram product of claim 8, wherein the contextual characteristic isbased on at least a prior communication.
 15. A method comprising:determining a contextual characteristic; generating with a processor amessage based on the contextual characteristic, the message comprising aplurality of generated message segments and at least one message portionto be completed by the user; receiving the at least one message portion;incorporating the at least one message portion into the message; andcausing transmission of the message.
 16. The method of claim 15, whereinthe message is generated in response to an incoming communication, andthe contextual characteristic is identified based on at least a senderof the incoming communication.
 17. The method of claim 15, wherein thecontextual characteristic is based on at least a calendar.
 18. Themethod of claim 15, wherein the contextual characteristic is based on atleast one of a current day or time.
 19. The method of claim 15, whereinthe contextual characteristic is based on at least a current location.20. The method of claim 15, wherein the contextual characteristic isbased on at least a prior communication.